﻿///////////////////////////////////////////////////////////////////////////
//  Copyright(c) 2022,GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007
//
/// @file    hiobj_help.h
/// @brief   文件简要描述
/// @version 0.1
/// @history 修改历史
/// @warning 没有警告
///////////////////////////////////////////////////////////////////////////
#ifndef __HIOBJ_HELP_H__
#define __HIOBJ_HELP_H__

#include "klb_type.h"
#include "hi_type.h"
#include "klbutil/CMap.hpp"


void cmap_get_HI_S64(klb::CMap& r, const std::string& key, HI_S64* p_s64);
void cmap_get_HI_U64(klb::CMap& r, const std::string& key, HI_U64* p_u64);
void cmap_get_HI_S32(klb::CMap& r, const std::string& key, HI_S32* p_s32);
void cmap_get_HI_U32(klb::CMap& r, const std::string& key, HI_U32* p_u32);
void cmap_get_HI_CHAR(klb::CMap& r, const std::string& key, HI_CHAR* p_char, int size);


template<class T>
void cmap_get_ENUM(klb::CMap& r, const std::string& key, T* p_enum)
{
    int64_t v;
    if (r.Get(key, v))
    {
        *p_enum = (T)v;
    }
}


#endif // __HIOBJ_HELP_H__
//end
